package com.woniuxy.service;

import com.woniuxy.entity.Record;
import com.woniuxy.util.ResponseUtil;

/**
 * 签约记录服务接口
 * 定义签约记录相关的业务操作方法
 */
public interface SignRecordService {
    /**
     * 查询所有签约记录
     * @return 返回所有签约记录的响应结果
     */
    ResponseUtil queryAll(Integer pageNum, Integer pageSize);
    
    /**
     * 根据居民ID查询签约记录
     * @param residentId 居民ID
     * @return 返回指定居民的签约记录
     */
    ResponseUtil queryByResidentId(Integer residentId);

    /**
     * 根据居民ID查询所有签约记录（包括所有状态）
     * @param residentId 居民ID
     * @return 返回指定居民的所有签约记录
     */
    ResponseUtil queryAllByResidentId(Integer residentId);
    
    /**
     * 添加新的签约记录
     * @param record 签约记录对象
     * @return 返回添加操作的响应结果
     */
    ResponseUtil addRecord(Record record);
    
    /**
     * 删除指定ID的签约记录
     * @param id 记录ID
     * @return 返回删除操作的响应结果
     */
    ResponseUtil deleteRecord(Integer id);
    
    /**
     * 更新签约记录
     * @param record 签约记录对象
     * @return 返回更新操作的响应结果
     */
    ResponseUtil updateRecord(Record record);

    /**
     * 查询指定状态的签约记录
     * @param status 状态
     * @return 状态对应的签约记录
     */
    ResponseUtil queryRecordByStatus(Integer status);
}
